package com.loop.homework;

import java.util.Scanner;

public class HomeWork {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        l:while (true) {
            System.out.println("选择看题：");
            System.out.println("1）打印扑克牌");
            System.out.println("2）判断数组元素是否对称");
            System.out.println("3）定义动物类");
            System.out.println("其他）退出");
            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    printPoke();
                    break;
                case 2:
                    System.out.println("自定义了两个个整数类型的数组");
                    System.out.println("a数组：1,2,3,4,3,2,1");
                    System.out.println("b数组：13,2,3,415,12");
                    int[] a = {1,2,3,4,3,2,1};//对称
                    int[] b = {13,2,3,415,12};//不对称
                    System.out.println("数组a为"+(isSymmetric(a) ? "对称数组" : "不对称数组"));
                    System.out.println("数组b为"+(isSymmetric(b) ? "对称数组" : "不对称数组"));
                    break;
                case 3:
                    System.out.println("看pojo包的Animal类，蟹蟹！");
                    break;
                default:
                    break l;
            }
        }
    }

    /**
     *  设计一个数组存储  4个花色; 设计第二个数组存储A---K 十三张牌;  数组嵌套遍历,就能组成牌型
     */
    public static void printPoke() {
        //扑克牌的花色数组
        String[] colorType = {"黑桃","红桃","梅花","方片"};
        //扑克牌的点数
        String[] numType = {"A","2","3","4","5","6","7","8","9","10","J","Q","k"};
        for (int i = 0; i < colorType.length; i++) {
            for (int j = 0; j < numType.length; j++) {
                //花色和点数一起打印，但打印 coloType 数组的i下标
                System.out.print(colorType[i]);
                //点数打印 numType 的 j 下标
                System.out.print(numType[j]+"  ");
            }
            System.out.println();
        }
    }

    /**
     * 定义sym方法,判断数组中的元素值是否对称. 方法的参数列表为int[]数组, 返回值结果boolean类型:
     */
    public static boolean isSymmetric(int[] arr){
        //判断数组的合法性
        if (arr==null || arr.length==0){
            System.out.println("数组为空或或者长度为0，无法判断，默认为false");
            return false;
        }
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]!=arr[arr.length-i-1]){
                //判断i位置以及其对称位置arr.length-i-1位置的元素是否相等，只要有一组不相等就返回false
                return false;
            }
            //当i大于arr.length-i-1时，就没必要继续比下去了
            if (i>=arr.length-i-1){
                break;
            }
        }
        //循环能够结束的话表明此数组为对称数组
        return true;
    }
}
